异步读文件,使用此函数读取文件是非阻塞的,当读操作完成时会自动回调指定的函数。
bool swoole_async_read(string $filename, mixed $callback, int $size = 8192, int $offset = 0);
此函数与swoole_async_readfile
不同,它是分段读取,可以用于读取超大文件。每次只读$size
个字节,不会占用太多内存。
在读完后会自动回调$callback
函数,回调函数接受2个参数:
bool callback(string $filename, string $content);
- $filename,文件名称
- $content,读取到的分段内容,如果内容为空,表明文件已读完
$offset参数在1.7.13以上版本可用
$callback函数,可以通过return true/false,来控制是否继续读下一段内容。
- return true,继续读取
- return false,停止读取并关闭文件